<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>求和函数</title>
</head>

<body>
  <script>
    // 要求： 
    // 1. 只会求参数中的number类型的和
    // 2. 无限小数需要进行处理   譬如0.1+0.2 = 0.30000000000004  就需要处理成  0.3
    function sum(...args) {
      console.log(args);
      args = args.filter((v) => {
        return typeof v === 'number'
      })
      let num = args.reduce((pre, v) => {
        return pre + v
      }, 0)

      return num.toFixed(3)*1000/1000
      // 👆  这一步有两个作用，
      // 首先，toFixed()之后  会将数字转化为字符串，与数字相乘  会隐式转化为数字类型
      // 其次， 保留3位小数，为防止有0.100这种后两位不必存在0的情况  乘1000 再除1000，可以将无用的0消除
    }
    console.log(sum(0.1, 0.2));
    
  </script>
</body>

</html>